define(['jquery',
         'global',
         'module/util',
         'bootbox.min',
		 'underscore',
         'bootstrap-fileinput_zh',
         'bootstrap-fileinput',
         'module/ajax',
         'jquery-weui',
         'viewer',
         'bootstrap',
         'pixeladmin'], 
function($, global, util, bootbox, _){
	window.PixelAdmin.start();
	
	var IsbnPage = {
		doLoad : function(obj) {
			if(!obj || !obj.root || obj.root.length == 0 || !obj.barcode || obj.barcode.length == 0) {
				$.alert("不能缺少基本参数！！！");
	        	if(obj && obj.error) obj.error();
				return false;
			}
			IsbnPage.doGetPage(util.copyBean(obj, {
				beforeSend : function() {//重写befondSend
					$("#" + obj.root).find(".weui-infinite-scroll").show();
		        	if(obj && obj.beforeSend) obj.beforeSend();
				}, 
				complete : function(result) {// 重写complete方法
					obj["data"] = JSON.parse(result.responseText).data;
					if($.isEmptyObject(obj["data"])) {
		        		IsbnPage.doCreateHtml(obj);
		        	} else {
		        		IsbnPage.doLoadHtml(obj);
		        	}
					$("#" + obj.root).find(".weui-infinite-scroll").hide();
					if(obj && obj.complete) obj.complete();
				}
			}));
		},
		doLoadHtml : function(obj) {
			for(var isbnInformationId in obj.data) {
				IsbnPage.doCreateHtml({root : obj.root, barcode : obj.barcode, isbnInformationId : isbnInformationId, data : obj.data[isbnInformationId]});
			}
		},
		doCreateHtml : function(obj) {
			if(!obj || !obj.root || obj.root.length == 0 || !obj.barcode || obj.barcode.length == 0 || !obj.isbnInformationId || obj.isbnInformationId.length == 0) {
				$.alert("不能缺少基本参数！！！");
	        	if(obj && obj.error) obj.error();
				return false;
			}
			var root = $("#" + obj.root);
			var index = root.find(".isbn-page").length;
			var renderHtml = _.template($("#isbnPageTemplate").html());
			root.html(renderHtml({
				index : index, 
				id : obj.isbnInformationId, 
				barcode : obj.barcode, 
				isbnInformationId : obj.isbnInformationId,
				global : global,
				data : obj.data,
				currentPage : 1
			}));
			
			this.doInitPreview(obj);
			this.doInitUpload(obj);
			this.doInitChangePage(obj);
		},
		doInitUpload : function(obj) {
			var uploadUrl = global.context + '/web/isbnSaveAndUpdate/uploadFile/'+obj.isbnInformationId+'/1';
			var opeation = {
			    uploadUrl: uploadUrl, // server upload action
			    language: 'zh',
			    minFileCount: 1,
			    showPreview: false
			};
			$("#file-input-" + obj.isbnInformationId).fileinput(opeation);
		},
		doInitPreview : function(obj) {
			$("#" + obj.root).find(".image-ul").viewer();
		},
		doUpdatePreview : function(obj) {
			$("#" + obj.root).find('.image-ul').viewer('update');
		},
		doInitChangePage : function(obj) {
			var renderHtml = _.template($("#isbnInformationImageViewTemplate").html());
			$("body").on('click','.image-page',function(){
				if($(this).hasClass("btn-primary")) {
					return false;
				}
				$(".image-page").removeClass("btn-primary");
				$(this).addClass("btn-primary");
				$(".image-li").hide();
				$("." + $(this).attr("page-class")).show().each(function() {
					if($(this).is(':has(div)')) {
						return false;
					}
					var barcode = $(this).attr("barcode"), isbnInformationId = $(this).attr("isbnInformationId");
					var fileId = $(this).attr("file-id"), fileName = $(this).attr("file-name"), fileSize = $(this).attr("file-size"), url = $(this).attr("data-original");
					var html = renderHtml({
						index : $("#" + obj.root).find(".file-preview-frame").length, 
						id : fileId, 
						barcode : barcode, 
						isbnInformationId : isbnInformationId,
						fileName : fileName,
						fileSize : fileSize,
						src : url
					});
					$(this).html(html);
				});
				IsbnPage.doUpdatePreview(obj);
			});
			$("body").on('click','.remove-file',function(){
				var barcode = $(this).attr("barcode"), isbnInformationId = $(this).attr("isbnInformationId");
				var fileId = $(this).attr("file-id"), fileName = $(this).attr("file-name"), dataOriginal = $(this).attr("data-original"), index = $(this).attr("index");
				$.confirm({
				  title: '确认删除？',
				  text: '你确定需要删除该图片？',
				  onOK: function () {
						IsbnPage.doDeletePage({
							homeworkTemporaryId : fileId,
							success : function(result) {
								if(result && result.code == "ACK") {
									$("#" + obj.root).find("li[file-id='"+fileId+"']").remove();
								}
							},
							error : function(result) {
								
							}
						});
				  },
				  onCancel: function () {
				  }
				});				
			});
		},
		doGetPage : function(obj) {// 查询数据
			$.ajax({
		        url : global.context + '/web/isbnpage/getPages',
		        data : {barcode : obj.barcode, isbnInformationId : obj.isbnInformationId},
	            type : 'POST',
	            dataType : 'json',
	            beforeSend : function() {
		        	if(obj && obj.beforeSend) obj.beforeSend();
	            },
		        success : function(result) {
		        	if(obj && obj.success) obj.success(result);
		        },
		        error : function(result) {
		        	if(obj && obj.error) obj.error(result);
		        },
				complete : function(result) {
		        	if(obj && obj.complete) obj.complete(result);
				}
			});
		},
		doDeletePage : function(obj) {
			$.ajax({
		        url : global.context + '/web/isbnSaveAndUpdate/deletePage/' + obj.homeworkTemporaryId,
	            type : 'POST',
	            dataType : 'json',
	            beforeSend : function() {
		        	if(obj && obj.beforeSend) obj.beforeSend();
	            },
		        success : function(result) {
		        	if(obj && obj.success) obj.success(result);
		        },
		        error : function(result) {
		        	if(obj && obj.error) obj.error(result);
		        },
				complete : function(result) {
		        	if(obj && obj.complete) obj.complete(result);
				}
			});
		},
	};
	return IsbnPage;
});